/**
 * Next.js Instrumentation Hook
 * 在应用启动时自动执行
 */

export async function register() {
  // 只在服务器端执行
  if (process.env.NEXT_RUNTIME === 'nodejs') {
    console.log('🚀 Instrumentation: 应用启动，准备初始化定时任务系统...');
    
    // 延迟初始化，确保应用完全启动
    setTimeout(async () => {
      try {
        // 动态导入避免在客户端执行
        const { initTimerTasks } = await import('./utils/timer/init');
        
        console.log('🔄 Instrumentation: 开始初始化定时任务...');
        await initTimerTasks();
        console.log('✅ Instrumentation: 定时任务系统初始化完成');

        // // 初始化服务端 MQ 服务
        // const { serverMQService } = await import('./utils/mq/serverMQService');
        // const mqConfig = {
        //   protocol: process.env.MQ_PROTOCOL || 'amqp',
        //   hostname: process.env.MQ_HOST || 'localhost',
        //   port: parseInt(process.env.MQ_PORT || '5672', 10),
        //   username: process.env.MQ_USERNAME || 'guest',
        //   password: process.env.MQ_PASSWORD || 'guest',
        //   vhost: process.env.MQ_VHOST || '/',
        // };
        // console.log("mqConfig", mqConfig);
        // serverMQService.init(mqConfig);
        // await serverMQService.connect();
        
      } catch (error) {
        console.error('❌ Instrumentation: 服务初始化失败:', error);
      }
    }, 5000); // 5秒延迟，确保数据库连接就绪
  }
} 